/**
 *  ━━━━━━神兽出没━━━━━━ 
 *　　　┏┓　　　┏┓ 
 *　　┏┛┻━━━┛┻┓ 
 *　    ┃　　　　　　　┃
 *　	  ┃　　　━　　　┃ 
 *　    ┃　┳┛　┗┳    ┃ 
 *　　┃　　　　　　　┃ 
 *　　┃　　　┻　　　┃ 
 *　　┃　　　　　　　┃ 
 *　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting 
 *　　　　┃　　　┃    神兽保佑,代码无bug 
 *　　　　┃　　　┃ 
 *　　　　┃　　　┗━━━┓ 
 *　　　　┃　　　　　　　┣┓ 
 *　　　　┃　　　　　　　┏┛ 
 *　　　　┗┓┓┏━┳┓┏┛ 
 *　　　　　┃┫┫　┃┫┫ 
 *　　　　　┗┻┛　┗┻┛ 
 * 
 * ━━━━━━感觉萌萌哒━━━━━━ 
 */
package gt.controller.queue;

import java.util.LinkedList;

/**
 * 类名称:MyQueue.java
 * 类描述:
 * 作    者:why
 * 时    间:2017年6月17日
 */
public class MyQueue<T> {
	private LinkedList<T> q = new LinkedList<T>();  
	
	/**
	 * 排队
	 * @param e
	 */
    public synchronized void put(T e) {//需要加上同步  
        q.addFirst(e);  
    }  
    /**
     * 插队
     * @param index
     * @param e
     */
    public synchronized void jumpPut(int index, T e){
    	q.add(index, e);
    }
    /**
     * 放弃排队
     * @param index
     */
    public void giveUp(int index){
    	q.remove(index);
    }
    /**
     * 排到窗口的人
     * @return
     */
    public T get(){
    	try {
			Thread.sleep(500);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
    	return q.removeLast();
    }
    /**
     * 是否还有人
     * @return
     */
    public Boolean isEmpty(){
    	return q.isEmpty();
    }
    
    @Override  
    public String toString() {  
        return q.toString();  
    }  
}
